# 使用官方的 Golang 基础镜像进行构建
FROM golang:1.22-alpine AS builder

# 设置工作目录
WORKDIR /app

# 将 go.mod 和 go.sum 文件复制到容器中
COPY go.mod go.sum ./

# 下载所有依赖包
RUN go mod download

# 将源代码复制到容器中
COPY . .

# 构建应用程序
RUN CGO_ENABLED=0 GOOS=linux go build -o main ./main.go

# 使用轻量级的基础镜像
FROM alpine:latest

# 设置工作目录
WORKDIR /root/

# 从构建阶段复制二进制文件到此阶段
COPY --from=builder /app/main .
COPY --from=builder /app/config/config-prod.yaml ./config/config.yaml
COPY --from=builder /app/config/.kube/default/config ./config/.kube/default/config

# 暴露应用运行端口，根据实际情况修改
EXPOSE 8000

# 启动命令
CMD ["./main"]